The electronic assemblies of today, whether they be a large IC (Integrated Circuit) of a PCA (Printed Circuit Assembly) can posses an extraordinary degree of functionality. This has created issues related to initial testing and performance verification upon manufacture, as well as to periodic testing and performance verification during routine maintenance or trouble shooting and repair. In many cases, the old technique of having a test procedure followed by a trained technician that understands how the thing works is simply out of the question: the overwhelming complexity and issues of time and cost force us to seek other approaches.
In manufacturing large complex electronic assemblies the philosophy has tended toward one of ensuring that the design is sound, and then using good parts to correctly form the assembly. The expectation is that the completed assembly should work as desired. Associated with this is the notion that the sooner a defect can be discovered in the manufacturing process, the less it costs to discover and fix it. Some defects can only be discovered through performance testing, while others, especially those related to mechanical properties, can be discovered by inspection. Both performance testing and inspection can be automated to a significant degree. And since the effect on performance of a mechanical defect, such as a solder bridge between two traces on the PCA, or a break in a trace, might be pronounced (“It's dead and oozing stinky smoke . . . ”) or subtle (“Every so often it does something goofy . . . ”), and since finding a mechanically based electrical fault by analysis of electrical operation is like looking through the wrong end of a telescope, it is generally agreed that a through mechanical inspection should precede an attempt to operate the assembly.
Automated mechanical inspection of assembled PCAs turns out to be something that can be effectively accomplished. What one might call an “x-ray vision system” is proving to be an agreeable and cost effective way of reliably finding breaks in traces, bridges between traces, and voids in solder joints. Since x-rays are involved, these defects need not be upon an exposed surface to be discovered. The determination that a defect is present can be made by analysis of a suite of work images (say, for a solder joint) or by comparison of a work image with a stored exemplar (say, for trace integrity).
Such automated x-ray inspection systems have found acceptance in the marketplace, and new and refined techniques are appearing that both lower the cost and increase the capability of new automated inspection systems.
One of the ways to lower the cost of an x-ray imaging system is to reduce its mechanical complexity. One form for an early system used a circularly deflects x-ray beam and a rotating sensor. These items might be twelve to twenty inches away from each other, with the PCA disposed between them, but all must be in precision alignment if features (and defects) on the order of a few thousandths of an inch are to be resolved during testing. Such requirements add significantly to the mechanical complexity and cost of the imaging system.
An attractive alternative to such a design is one using a stationary line scan camera (1), such as is set out in the incorporated “PRECISE X-RAY INSPECTION SYSTEM . . . ”, which we now summarize with the help of FIG. 1. As shown in FIG. 1, a plurality of multi-element imaging sensors (2) is disposed beneath a divergent x-ray ‘point source’ (3). The image sensors 2 may each be just one pixel wide, or may be several pixels wide for use with a TDI (Time Domain Integration) style line scan camera, and each has perhaps 2048 pixels uniformly distributed along a length of say, six to eight and one half inches. (The rationale for equating an imaging sensor one pixel wide and a TDI sensor several pixels wide arises from the fact that in either case, just one pixel value per clock cycle is produced for the TDI case, as if it were only one pixel wide—which it is not, so the pixel values produced are different, but still are just one value per clock cycle.) The image sensors may be similar to contact image sensors used in the visual scanning of documents, save that they include a thin covering of material that fluoresces (or scintillates) with visible light when excited by x-rays. The long axes of the image sensors are all parallel to one another, and we shall call this direction the x axis. The arrangement in x and y of the individual image sensors their plurality is not a particular issue here, and we show them as spread out over an area, there better to mimic the spatial aspects of an ‘area’ image sensor. And while not essential, it is convenient if they cover a contiguous portion of the x axis with no embedded gaps corresponding to where one sensor stops and another starts.
Before proceeding we should address an issue relating to terminology and the use of the term ‘camera’ in this setting. We are aware that some practitioners use the term ‘camera’ to refer to an individual multi-element imaging sensor, even if it is but one pixel in width (or more, for TDI applications), and that they would be inclined to refer to the overall line scan apparatus as the ‘line scan system.’ We find this somewhat cumbersome, as the term multi-element image sensor is perfectly descriptive, as is the notion of a camera whose output is an image representing a slice of the entire three dimensional object, and which happens to use a line scan technique upon multi-element imaging sensors that are one pixel wide, and which we shall be content to call a ‘line scan camera.’
We shall arrange that the location from which the x-rays (4) emanate is above a central location within the arrangement of imaging sensors, and that the x-rays diverge uniformly in a generally conical manner toward the imaging sensors. The imaging sensors are all mounted with uniform height at known locations within a plane (5) that is perpendicular to the axis of the conical dispersion of the x-rays. We may assume, in the absence of any intervening material that absorbs or block x-rays, that each pixel location in the generally circular array of image sensors receives roughly the same level of x-ray illumination, and that each produces about the same level of electrical signal. (We also expect that any signal variations occurring under such ‘neutral’ conditions have been noted, and can if desired, be removed from measured data as effects of offsets and scaling, to leave in place indications related only to conditions within a PCA being tested.)
A PCA (6) to be tested is interposed between the x-ray source and the imaging sensors, and is generally parallel to the plane 5 of the imaging sensors. The size of the PCA may exceed that of the planar array of imaging sensors by many times over, and to accommodate that are well as allow each image sensor to ‘see’ every feature of interest on the PCA, the PCA is translated at a generally uniform velocity (Vscan) along a serpentine path 9 that is known in advance and under the control of a transport control mechanism (8), which may be a computer programmed and connected to operate in this manner. This is primarily smooth continuous motion back and forth along the y direction, with intervening discrete steps in the x direction at the extremes of y motion. During portions of the serpentine path when x-ray shadows of interest fall on the imaging sensors, the data signals from the imaging sensors (denoted by the lower case Greek α) are read out at a regular clock rate and stored in a (rather large!) memory (7). Thus, at the end of a serpentine scan we have a whole big bundle of data that can be algorithmically manipulated (8) with software executed by a computer to produce (8) images of interest, and which may then be analyzed in isolation or compared to one or more exemplars, and in any case evaluated (10) using selected criteria. These techniques for analysis and comparison are conventional, and are not of further interest here.
Our interest lies more in an aspect of the manner in which an image is obtained in the first instance. To assist us in this, we may reduce the scope of the above described activity to obtaining a partial image along just one portion of one y-direction leg of the serpentine with data from just one imaging sensor. [This is done with the understanding, of course, that what we do for one imaging sensor we also do for the others, and that there are known ways for the processed data for the various sensors to be combined to produce a ‘recontructed’ (think: ‘complete’) image of interest.]
To continue, we note that a notion of ‘in focus’ can be developed. Consider some pixel position along some imaging sensor. It basically represents all or a portion of an x-ray shadow of some target feature on the PCA that lies along the line (ray trace) from that pixel position to the origin of the x-rays (assumed to be a bright point-like spot). As the PCA moves, several values for our pixel location are clocked out and captured. These values are for different locations in y but at the same location (i) in x. Let's call such a thing a ‘Y alpha sequence at (some) X,’ or Yα@Xi. At the same time this is also happening for other pixel locations on the same imaging sensor (at another value of i for Xi), and at the corresponding pixel location (if there is one at the x) on all the other imaging sensors. The arrangement of imaging sensors is such that at least one other imaging sensor will eventually produce a sequence of signals (various α values) for that same target feature. (‘Eventually’ might mean at a different location on the same leg of the serpentine, or on a different leg).
Now, for all the other imaging sensors that produced a sequence of signals for the target feature (which might well be all of them), place the elements of these various Yα@Xi into correspondence: this element of the sequence from this sensor corresponds to that element of the sequence from another sensor, and so on. We note that these elements (various α values) were probably not obtained at the same time, as the feature might have been imaged at a different place along the serpentine path. The important thing is to agree that such a correspondence between ‘the same location in x’ on different imaging sensors exists, and the effects of sensor separation can be represented as shifts or offsets of element positions between the sequences: a shift (or offset) of so many elements between a Yα@X1 and a Yα@X2, and of a different number of elements between Yα@X1 and a Yα@X3, and so on.
A similar correspondence can be formed with shifts between different pixel locations in x that ‘have the same y,’ whether they are on the same imaging sensor or on two that each lie on the other's axial extension (along the x axis or along a line parallel to it). That is, the data also contains various instances of an ‘X alpha sequence at (some) Y,’ or, Xα@Yj. (A note about notation is in order here. We will write Yα@Xi and Xα@Yj instead of Yα@Xi and Xα@Yi, lest it appear that when considering these two at the same time the subscript i is a common value for each. When we write Yα@Xi and Xα@Yj, each of i and j are allowed to range independently, and might be the same or might be different, as the case requires. What we mean is no more or no less than just ‘some X’ and ‘some Y.’)
A moment's thought will confirm the assertion that the height of the target feature above the imaging sensors also has an effect (discussed below in connection with magnification, M) in that it determines how far apart in the imaging plane two shadows along different diverging rays fall upon the imaging plane.
Now, if we pick from some Yα@Xi and Xα@Yj that contain a common element that belongs to (is contained) in the target feature, and with knowledge of sensor separation and a desired height in z, we ‘properly’ shift their respective other Yα@Xi and Xα@Yj into correspondence with them and then combine (say, by averaging) all instances of that element (for the target feature) for all the sequences, we can favor the desired location along the z axis in that: For all the ray traces passing through the target feature at that z and reaching an image sensor, each has a signal value α related to the target feature, and we may take their average as representative thereof, while for other rays that might reach a sensor after passing through a different z location the associated signal values tend to cancel each other (average out). Note that: which pixel position along the length of a sensor has determined an x coordinate (as further understood by which leg in the serpentine the PCA was happening when that pixel value was taken); the location within the sequence of clocked out sensor values (which αj) within a leg determines the y coordinate; and, the desired z coordinate further affects the pattern of shifts or offsets between the Yα@Xi and Xα@Yj from for the imaging sensors. The averaged value obtained here is the value of the pixel at (x, y, z), i.e., its intensity, which we might call A (the Greek upper case alpha).
We have just found (x, y, z, A), or a pixel description for a location in space, which might belong to a solder ball affixing a huge IC to a ball grid array. We do this for not just one pixel location, but for all pixel locations that may be of interest (there might be parts of a PCA that we do not bother to inspect). That is, we can pick an (x, y) location and then shift in x as y remains fixed, and then shift in y as x remains fixed. Then we pick another (x, y) location, and so on. What emerges is an (x, y) image in A at some height in z. We probably want the same (x, y) regions at other values for z, as well, and it will be appreciated that in this general manner a desired complete two or three dimensional image can be constructed. The serpentine path serves to cover the entire PCA, while an increased plurality of imaging sensors provides improved cancellation of the ‘out of focus’ planes in z.
Before leaving this somewhat simplified description of how a line scan camera operates, we should point out a few other details that will be of interest in what follows. The topic is: “How do we know how much to shift (or offset) the elements of the various sequences from the associated imaging sensors?” Hmm. Well, on the one hand we know the relative position of each imaging sensor with respect to all the others (or at least we believe so . . . ). It turns out that, given the measurement precision that the x-ray line scan camera is otherwise capable of, we are well advised if we become suspicious of the effects of temperature change. Furthermore, as the next few paragraphs show, there is a particular magnification parameter called Mref that is also rooted in the mechanical aspects of the whole line scan camera.
With reference now to FIG. 2, it will be appreciated that as the divergent x-rays 4 spread out on their journey from the x-ray spot on the source 3, a given sized target object (12) in the PCA will create a larger shadow 13 (in spatial terms measured in pixel-to-pixel spacings at the imaging sensor) if the target object is closer (11) to the x-ray spot on the source, than it does (14) when further away (15). The ratio between the actual size of the target object and its apparent size according to the corresponding shadow on the sensor (and, of course, taking the spacing of the sensor elements into account) is called the magnification, or M. We are most interested in knowing an accurate value of M for out instances of testing, as it figures in how much to shift the sequence of measured α values from each sensor to correspond to those of another sensor, or to shift a sequence of α values from a given sensor element for combination with the un-shifted sequence for the same sensor element, and thus ‘focus’ at a desired value of z.
Now, when we shift one collection of α values to combine with another, one collection moves relative to the other: it won't do if they both move the same amount, as the net effect would be no shift at all. So, if there are several collections to be shifted by different amounts and then combined, we can appreciate that all of these can be thought of as being shifted by the requisite amount relative to something that does not shift. That ‘something’ is the image, or slice, (which is some collection of α values) at some z height of convenience, say, zk. We shall refer to this height zk in z as the reference plane. When consider what magnification M is afoot for the focusing of reconstructed images, the necessary shifting will be performed relative to zk, and the value of M that arises from using that particular value for z will be called Mref.
Now, it is not so much that we don't have a general idea of what Mref is, or that Mref changes abruptly from day to day as the system is in use. A given x-ray line scan camera has a certain Mref. It is more that it would be rash to operate the system for weeks or months at a time and expect Mref to remain absolutely constant. Or to expect that mechanical wear, adjustment and other maintenance do not affect Mref. It has been found that an x-ray line scan camera of the sort described here has sufficient resolution and accuracy that modest changes in temperature can produce detectable changes in the effective value of Mref. But our ability to know where in z an image is located (and this is the stock in trade of an ‘x-ray vision’ PCA inspection system) depends on knowing Mref! Indeed, if Mref is too far off, images will not appear to be in focus at all, owing to significant subversion of the shift and average technique used to cancel out that which is ‘out of focus’ and leave just that which is ‘in focus.’ We believe that it is prudent to find Mref whenever the system is powdered up, after maintenance, perhaps at least once or twice a day whether it needs it or not, and at any other time when it seems like a good idea.
There are prior art solutions to discovering an actual value of Mref for a particular line scan camera system. For example, the measured distance between two index lines or marks can be compared to what is thought to be their true distance. Unfortunately, the limits imposed on measurement precision by the pixelation of the image sensors, and the uncertainty of other system variables conspire to limit the accuracy with which the true value of Mref can be discovered by this method. What we need is a better way to easily discover the true value of Mref whenever it seems useful to do so. How to do it?